/*
* 标准简历页面检验及部分时间绑定
**/

/*中英文提示信息*/
var standRes_tips = {};
function setStandResTips_ch(){
    standRes_tips.companyName_enter = '请输入公司名称';
    standRes_tips.companyName_minLength4 = '公司名称最少填写4个字符';
    standRes_tips.companyName_maxLength255 = '公司名称不能超过255个字符';
    standRes_tips.companyName_spelChart = '公司名称不可包含特殊符号（除“-”、“·”外）';
    standRes_tips.companyName_beginLetter = '公司名称必须以汉字或字母开头';

    standRes_tips.jobName_enter = '请输入职位名称';
    standRes_tips.jobName_minLength2 = '职位名称最少填写2个字符';
    standRes_tips.jobName_maxLength30 = '职位名称不能超过30个字符';
    standRes_tips.jobName_spelChart = '职位名称不可包含特殊符号（除“-”、“·”外）';
    standRes_tips.jobName_beginLetter = '职位名称必须以汉字或字母开头';

    standRes_tips.positionSalary_enter = '请选择职位月薪';
    standRes_tips.academicDegree_select = '请选择您的学历/学位';
    standRes_tips.expectedSalary_select = '请选择期望月薪';
    standRes_tips.schoolName_enter = '请输入您的学校名称';
    standRes_tips.schoolName_minLength4 = '学校名称最少填写4个字符';
    standRes_tips.professionName_enter = '请输入您的专业名称';
    standRes_tips.professionName_minLength2 = '专业名称最少填写2个字符';
    standRes_tips.desiredWorkNature_select = '请选择期望工作性质';

    standRes_tips.workDesc_enter = '请填写工作描述';
    standRes_tips.workDesc_minLength20 = '工作描述最少填写20个字符';
    standRes_tips.workDesc_maxLength3k = '工作描述不能超过3000个字符';
    standRes_tips.workDesc_exaShowStr = '显示示例';
    standRes_tips.workDesc_exaHideStr = '收起示例';
    standRes_tips.workDesc_example = '范例一：\r\n该公司为海外著名网络技术公司驻华办事处。任职期间参与制定公司发展战略和目标，组织策划并实施了人力资源管理体系，健全了各项规章制度，加大员工本土化进程，改革薪酬福利制度，完善了人力资源相关业务过程（包括工作分析、招聘、培训、绩效、薪资等），并参与完成ERP系统改进工作。\r\n' +
        '范例二：\r\n根据公司的近期和远期目标、财务预算，制定销售计划、制定和审核销售预算，提出产品价格政策；根据同类其他产品的市场动态，销售动态、存在问题、市场竞争发展状况等实施分析汇总，并提出改进方案和措施，协同销售计划的顺利完成；保持与客户的良好关系，维护客户管理，定期组织市场调研、分析市场动向、特点和发展趋势。于2006年成功拓展市场，实现年销售额600万的产品销售业绩。';

    standRes_tips.industryPrevious_enter = '请选择行业类别';
    standRes_tips.jobPrevious_enter = '请选择职位类别';
    standRes_tips.industryDesired_enter = '请选择期望从事行业';
    standRes_tips.jobDesired_enter = '请选择期望从事职业';
    standRes_tips.placeesired_enter = '请选择期望工作地点';
    standRes_tips.workDate_select = '请选择工作时间';
    standRes_tips.studyDate_select = '请选择就读时间';
    standRes_tips.end_more_start = '结束时间必须大于开始时间';
    standRes_tips.not_greater_now = '不能大于当前时间';
    standRes_tips.full_time_select = '请选择是否统招';
    standRes_tips.selfEvaluation_blank_in = '请详细描述您的职责范围，工作任务以及取得的成绩等。';

}
function setStandResTips_en(){
    standRes_tips.companyName_enter = 'Please enter your Company name';
    standRes_tips.companyName_minLength4 = 'Company name at least fill 4 characters';
    standRes_tips.companyName_maxLength255 = 'Company name at more fill 255 characters';
    standRes_tips.companyName_spelChart = 'No numbers and special characters';
    standRes_tips.companyName_beginLetter = 'Company name input starts with Chinese or English letter';

    standRes_tips.jobName_enter = 'Please enter your Job title';
    standRes_tips.jobName_minLength2 = 'Job title at least fill 2 characters';
    standRes_tips.jobName_maxLength30 = 'Job title at more fill 30 characters';
    standRes_tips.jobName_spelChart = 'No numbers and special characters';
    standRes_tips.jobName_beginLetter = 'Job title input starts with Chinese or English letter';

    standRes_tips.positionSalary_enter = 'Please select the Monthly income';
    standRes_tips.academicDegree_select = 'Please enter your Degree';
    standRes_tips.expectedSalary_select = 'Select the Expected monthly income';
    standRes_tips.schoolName_enter = 'Please enter your School name';
    standRes_tips.schoolName_minLength4 = 'School Name at least fill 4 characters';
    standRes_tips.professionName_enter = 'Please enter your Major';
    standRes_tips.professionName_minLength2 = 'Major at least fill 2 characters';
    standRes_tips.desiredWorkNature_select = 'Please select the Job type';

    standRes_tips.workDesc_enter = 'Please enter your Work description';
    standRes_tips.workDesc_minLength20 = 'Work description at least fill 20 characters';
    standRes_tips.workDesc_maxLength3k = 'Work description at more fill 3000 characters';
    standRes_tips.workDesc_exaShowStr = 'Example';
    standRes_tips.workDesc_exaHideStr = 'Hide example';
    standRes_tips.workDesc_example = '范例一：\r\n该公司为海外著名网络技术公司驻华办事处。任职期间参与制定公司发展战略和目标，组织策划并实施了人力资源管理体系，健全了各项规章制度，加大员工本土化进程，改革薪酬福利制度，完善了人力资源相关业务过程（包括工作分析、招聘、培训、绩效、薪资等），并参与完成ERP系统改进工作。\r\n' +
        '范例二：\r\n根据公司的近期和远期目标、财务预算，制定销售计划、制定和审核销售预算，提出产品价格政策；根据同类其他产品的市场动态，销售动态、存在问题、市场竞争发展状况等实施分析汇总，并提出改进方案和措施，协同销售计划的顺利完成；保持与客户的良好关系，维护客户管理，定期组织市场调研、分析市场动向、特点和发展趋势。于2006年成功拓展市场，实现年销售额600万的产品销售业绩。';

    standRes_tips.industryPrevious_enter = 'Please select your Job category';
    standRes_tips.jobPrevious_enter = 'Please select your Position';
    standRes_tips.industryDesired_enter = 'Please select your Expected category';
    standRes_tips.jobDesired_enter = 'Please select your Expected position';
    standRes_tips.placeesired_enter = 'Please select your Expected location';
    standRes_tips.workDate_select = 'Please select a Date';
    standRes_tips.studyDate_select = 'Please select a Date';
    standRes_tips.end_more_start = 'End time must be greater than start time';
    standRes_tips.not_greater_now = 'Not greater than the current time';
    standRes_tips.full_time_select = 'Please select Unified enrollment';
    standRes_tips.selfEvaluation_blank_in = 'To Present you to the hired,please describe your achievemerits, skills and specialize.';

}
/*自我评价默认信息设置--当自我评价的text area中没有内容时，在其中显示默认信息*/
function fc(vl){
    document.getElementById("comment").style.color="#333";
    if(vl == standRes_tips.selfEvaluation_blank_in){
        document.getElementById("comment").innerHTML="";
    }
}
function bl(vl){
    if(vl==""){
        document.getElementById("comment").innerHTML = standRes_tips.selfEvaluation_blank_in;
        document.getElementById("comment").style.color="#ccc";
    }else{
        document.getElementById("comment").style.color="#333";
    }
}
/*html页面中全局变量language的值等于1表示中文简历，等于2表示英文简历*/
if(language == 2){
    /*设置英文提示信息*/
    setStandResTips_en();
}else{
    /*设置中文提示信息*/
    setStandResTips_ch();
}
/*下拉框效果--点击时赋值*/
    $(".eleOption li").on("click",function(){
        var optionTxt=$(this).html();
        /*因为在IE和FF中li的value属性的值如果是形式如0100会被自动转成100，所以把value改成value_submit*/
        var optionLi=$(this).attr("value_submit");
        $(this).parent(".eleOption").siblings(".labelIE").css("display","none");//调节ie浏览器兼容
        $(this).parent(".eleOption").siblings(".click_pointer").attr("value",optionTxt);
        $(this).parent(".eleOption").siblings(".hidden_pointer").attr("value",optionLi);
        /*学历/学位的特殊处理，下拉框的项有datetime时添加给input*/
        $(this).parent(".eleOption").siblings(".click_pointer").removeAttr("datetime");
        if($(this).attr('datetime')){
        	$(this).parent(".eleOption").siblings(".click_pointer").attr("datetime",$(this).attr('datetime'));
        }
    });
/*下拉框效果--点击时展开和收起*/
    var click_sign1=undefined;
    $(".click_pointer").click(function(){
        if(!click_sign1){
            simOptionDown(this);
            click_sign1=true;
        }else{
            simOptionUp(this);
            click_sign1=false;
        }
    });
    $(".click_pointer").blur(function(){
        var that = this
        setTimeout(function(){simOptionUp(that);}, 100);
        click_sign1=undefined;
    });
function simOptionDown(eleInput){
    $(eleInput).siblings(".eleOption").slideDown(300);
    $(eleInput).siblings("i").removeClass("backDown").addClass("backUp");
}
function simOptionUp(eleInput){
    $(eleInput).siblings(".eleOption").slideUp(300);
    $(eleInput).siblings("i").removeClass("backUp").addClass("backDown");
}
/*对页面元素绑定事件*/
$(document).ready(function(){
    /* 是否有工作/实习经验和是否统招的单选按钮效果*/
    $('.radio_change01 .cole').on('click',function(){
        $(this).addClass('current').siblings().removeClass('current');
        $(this).find('input').attr('checked','checked').end().siblings().find('input').removeAttr('checked');

        var coleAttr=$("#cole01").find("input").attr("checked");
        var tiggleDiv = $(this).parent().parent().next("div");
        if(coleAttr=="checked"){
            if(tiggleDiv.hasClass("tiggleDiv")){
                $(".tiggleDiv").slideDown(300);
            }else{
                $(this).parent().parent().siblings().show();
            }
        }else{
            if(tiggleDiv.hasClass("tiggleDiv")){
                $(".tiggleDiv").hide();
            }else{

                $(this).parent().parent().siblings().hide();
            }
            
        }
    });
    $('.radio_change02 .cole,.radio_change03 .cole').on('click',function(){
        $(this).addClass('current').siblings().removeClass('current');
        $(this).find('input').attr('checked','checked').end().siblings().find('input').removeAttr('checked');
    });
    /*是否有工作/实习经验在点击否时把公司名称、行业类别、职位类别、职位名称、工作时间、* 职位月薪（税前）、工作描述 校验不通过的效果都删掉*/
    $('#cole02 label').on('click',function(){
        setTimeout(function(){
            $('#cmpany_name').removeClass('error_bor');
            $('#cmpany_name_msg').removeClass('error_tips');
            $('#cmpany_name_msg').html('');
            $('#industry_type').removeClass('error_bor');
            $('#industry_type_msg').removeClass('error_tips');
            $('#industry_type_msg').html('');
            /*$('#job_type').removeClass('error_bor');
            $('#job_type_msg').removeClass('error_tips');
            $('#job_type_msg').html('');*/
            $('#job_name').removeClass('error_bor');
            $('#job_name_msg').removeClass('error_tips');
            $('#job_name_msg').html('');
            $('#workstart_date_y').removeClass('error_bor');
            $('#workstart_date_m').removeClass('error_bor');
            $('#workend_date_y').removeClass('error_bor');
            $('#workend_date_m').removeClass('error_bor');
            $('#works_date_msg').removeClass('error_tips');
            $('#works_date_msg').html('');
            $('#simOption01').removeClass('error_bor');
            $('#simOption01_msg').removeClass('error_tips');
            $('#simOption01_msg').html('');
            $('#comment').removeClass('error_bor');
            $('#comment_msg').removeClass('error_tips');
            $('#comment_msg').html('');
        },300);
    });
    /*调节ie兼容*/
    $(".click_pointer").siblings("label").addClass("labelIE");

    /*是否统招的单选按钮在点击时设置校验通过效果*/
    $('#unified_y,#unified_n').on('click',function(){
        $('#full_school_msg').removeClass('error_tips');
        $('#full_school_msg').addClass('right_tips');
        $('#full_school_msg').html('');
    });
    /*是否统招点击时校验是否都没有选中*/
    $('#unified_y,#unified_n').parent().parent().on('click',function(){
        if(!$('#unified_n').attr('checked') && !$('#unified_y').attr('checked')){
            $('#full_school_msg').addClass('error_tips');
            $('#full_school_msg').html(standRes_tips.full_time_select);
        }
    });
    /*期望工作性质在点击时为hidden的input赋值*/
    $('#work_type_full,#work_type_part,#work_type_cadet').click(function(event){
        var values = [], workTypeValues = $('#work_type_values');
        if(workTypeValues.val()){
            values = values.concat(workTypeValues.val().split(','));
        }
        if(event.target.checked){
            values.push(event.target.value);
        }else{
            for(var i = 0; i < values.length; i++){
                if(event.target.value == values[i]){
                    values.splice(i, 1);
                    break;
                }
            }
        }
        workTypeValues.val(values.join(','));
    });
    /*期望工作性质在点击时校验对是否都没有选中*/
    $('.radio_change.property').on('click',function(event){
        var $em = $('#work_type_msg');
        if($('#work_type_values').val() == '' || $('#work_type_values').val() == undefined){
            $('#work_type_full').addClass('error_bor');
            $em.removeClass('right_tips');
            $em.addClass('error_tips');
            $em.html(standRes_tips.desiredWorkNature_select);
        }else{
            $('#work_type_full').removeClass('error_bor');
            $em.removeClass('error_tips');
            $em.addClass('right_tips');
            $em.html('');
        }
    });
    /*将此求职意向显示在我的简历中选中时赋值为y否则为n*/ //修改：根据需求在线上掉该选项
    /*(function(){
        $('#check1').val('y');
        $('#check1').click(function(event){
            if(event.target.checked){
                $('#check1').val('y');
            }else{
                $('#check1').val('n');
            }
        });
    })();*/
    /*公司名称添加联想功能*/
    /*线上获取接口 http://scloud.zhaopin.com/company?keyword=%E6%99%BA%E8%81%94&rows=10*/
    /*QA获取接口 http://172.17.0.52:8080/company?keyword=%E6%95%99%E8%82%B2&rows=10*/
    $('#cmpany_name').on('keyup', {requestURL: 'http://scloud.zhaopin.com/company', rows: 10}, function(event){
            /*当按了回车，上下方向键时如果有联想数据的列表，则在按上下方向键时对列表中li的class添加或删除current样式，否则return*/
            if(event.keyCode == 13 || event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 39 || event.keyCode == 40){
                /*如果有联想数据的列表则直接返回;*/
                if($("#companyNameLenovo li").length > 0){
                    return;
                }
            }
            var value = $(this).val();
            if($.trim(value) == ''){
                $('#companyNameLenovo').html('').hide();
                return;
            }
            var paramData = 'keyword=' + encodeURIComponent(value) + '&rows='+ event.data.rows;
            $.ajax({
                type: 'get',
                async: false,
                url: event.data.requestURL,
                data: paramData,
                dataType: 'jsonp',
                success: function(data){
                    var data = eval(data);
                    if(!data || data.length == 0){
                        $('#companyNameLenovo').html('').hide();
                        return;
                    }
                    var ulStr = '';
                    for(var i = 0; i < data.length; i++){
                        if(i == 0){
                            /*添加li的数据时给一个li添加class="current"，使数据列表以显示就有鼠标悬停效果，这样直接回车就把该li的值赋给input*/
                            ulStr+='<li companyId="'+ data[i].id + '" number="'+ data[i].number + '" class="current">'+data[i].name+'</li>';
                        }else{
                            ulStr+='<li companyId="'+ data[i].id + '" number="'+ data[i].number + '">'+data[i].name+'</li>';
                        }
                    }
                    var companyNamesUl = $("#companyNameLenovo");
                    companyNamesUl.html(ulStr);
                    $("#companyNameLenovo li").on("click",function(){
                        $("#cmpany_name").val($(this).text());
                    }).on("mouseover",function(){
                        $(this).addClass('current').siblings().removeClass('current');
                    });
                    companyNamesUl.slideDown(300);
                },
                error: function(){
                    $('#companyNameLenovo').html('').hide();
                }
            });
        }
    );
    /*公司名称下拉列表的上、下、回车键处理*/
    $('#cmpany_name').on('keydown',function(event){
        var $inout = $(this), $ul_li = $("#companyNameLenovo li");
        /*调用键盘上、下、回车键的处理函数*/
        keyDown_UpDownEnter(event, $ul_li, function(){setValueByEnterForComNam($inout, $ul_li);});
    });
    /*职位月薪（税前）、学历/学位、期望月薪（税前）、工作状态，在mouseover时给li的class添加current*/
    $(".eleOption li").mouseover(function(){$(this).addClass("current").siblings().removeClass("current")});
    /*职位月薪（税前）下拉列表的上、下、回车键处理*/
    $('#simOption01').on('keydown',function(event){
        var $inout = $(this), $ul_li = $(".eleOption1 li");
        /*调用键盘上、下、回车键的处理函数*/
        keyDown_UpDownEnter(event, $ul_li, function(){setValue_enter_submitVal($inout, $ul_li);});
    });
    /*学历/学位下拉列表的上、下、回车键处理*/
    $('#simOption02').on('keydown',function(event){
        var $inout = $(this), $ul_li = $(".eleOption2 li");
        /*调用键盘上、下、回车键的处理函数*/
        keyDown_UpDownEnter(event, $ul_li, function(){setValue_enter_submitVal($inout, $ul_li);});
    });
    /*期望月薪（税前）下拉列表的上、下、回车键处理*/
    $('#simOption03').on('keydown',function(event){
        var $inout = $(this), $ul_li = $(".eleOption3 li");
        /*调用键盘上、下、回车键的处理函数*/
        keyDown_UpDownEnter(event, $ul_li, function(){setValue_enter_submitVal($inout, $ul_li);});
    });
    /*工作状态下拉列表的上、下、回车键处理*/
    $('#simOption04').on('keydown',function(event){
        var $inout = $(this), $ul_li = $(".eleOption4 li");
        /*调用键盘上、下、回车键的处理函数*/
        keyDown_UpDownEnter(event, $ul_li, function(){setValue_enter_submitVal($inout, $ul_li);});
    });
    /*在公司名称等下拉列表上移动键盘的上下方向键时改变下拉列表项li的class*/
    function keyDown_UpDownEnter(event, $ul_li, setValue_enter){
        if($ul_li.length > 0){
            switch(event.keyCode){
                case 38 : {
                    var currentIndex = 0;
                    $ul_li.each(function(index, li){
                        if($(li).hasClass('current')){
                            currentIndex = index;
                            return false;
                        }
                    });
                    /*按向上的方向键到达最后一个li时停止*/
                    var previousIndex = currentIndex > 0 ? (currentIndex - 1) : 0;
                    $ul_li.eq(previousIndex).addClass('current').siblings().removeClass('current');
                    event.preventDefault();
                    break;
                }
                case 40 : {
                    var currentIndex = -1, len = $ul_li.length;
                    $ul_li.each(function(index, li){
                        if($(li).hasClass('current')){
                            currentIndex = index;
                            return false;
                        }
                    });
                    /*按向下的方向键到达最后一个li时停止*/
                    var nextIndex = currentIndex < len - 1 ? (currentIndex + 1) : len - 1;
                    /*按向下的方向键到达最后一个li时，如果再继续按向下的方向键，则再从第一个li向下到最后一个li一直循环*/
//                    var nextIndex = currentIndex < len - 1 ? (currentIndex + 1) : (currentIndex == len - 1 ? 0 : len - 1);
                    $ul_li.eq(nextIndex).addClass('current').siblings().removeClass('current');
                    event.preventDefault();
                    break;
                }
                case 13 : {
                    /*回车时input赋值的回调*/
                    setValue_enter();
                    event.preventDefault();
                    break;
                }
            }
        }
    }
    /*回车时给公司名称input赋值*/
    function setValueByEnterForComNam($input, $ul_li){
        if($ul_li.length > 0){
            /*回车时把class中有current的li的text赋给指定的input*/
            $ul_li.each(function(index, li){
                if($(li).hasClass('current')){
                    $input.val($(li).text());
                    /*公司名称的input赋值后调用blur进行校验*/
                    $input.blur();
                    /*收起包含li的ul*/
                    $ul_li.parent().slideUp(300);
                }
            });
        }
    }
    /*回车时给职位名称input赋值*/
    function setValueByEnterForJobNam($input, $ul_li){
        if($ul_li.length > 0){
            /*回车时把class中有current的li的text赋给指定的input*/
            $ul_li.each(function(index, li){
                var $li = $(li);
                if($li.hasClass('current')){
                    $input.val($li.text()).siblings('#SchJobType').val($li.attr('selfid')).siblings('#subJobType').val($li.attr('broadid'));
                    /*公司名称的input赋值后调用blur进行校验*/
                    $input.blur();
                    /*收起包含li的ul*/
                    $ul_li.parent().slideUp(300);
                }
            });
        }
    }
    /*回车时给职位月薪（税前）、学历/学位、期望月薪（税前）、工作状态的input赋值*/
    function setValue_enter_submitVal($input, $ul_li){
        if($ul_li.length > 0){
            /*回车时把class中有current的li的值赋给input*/
            $ul_li.each(function(index, li){
                if($(li).hasClass('current')){
                    /*触发li的click进行赋值*/
                    $(li).click();
                    /*触发input的blur进行校验*/
                    $input.blur();
                }
            });
        }
    }
    /*失去焦点时去掉公司名称联想功能的下拉框*/
    $('#cmpany_name').on('blur', function(){
        setTimeout(function(){$("#companyNameLenovo").slideUp(300);}, 200);
    });
    /*公司名称校验*/
    var companyObj = {
        $input: $('#cmpany_name'),
        $em:$('#cmpany_name_msg'),
//        minLength: 4,
        maxLength: 255,
        focusStyle: true,
        haveDelay: true,
        emptyTip: standRes_tips.companyName_enter,
//        minLengthTip: standRes_tips.companyName_minLength4,
        maxLengthTip: standRes_tips.companyName_maxLength255,
        methods: [isNOtEmpty, rangeLength, validateChars],
        charRegexps: [{
//            regexp: /^[A-Za-z\u4e00-\u9fa5|\-|\.\/ ]+$/,
            regexp: /^[\s\S ]+$/,
            tip: standRes_tips.companyName_spelChart
        },{
//            regexp: /^[A-Za-z\u4e00-\u9fa5][A-Za-z\u4e00-\u9fa5|\-|\.\/ ]+$/,
            regexp: /^[\s\S ]+$/,
            tip: standRes_tips.companyName_beginLetter
        }]
    }
    onFocusBlurEvent('#cmpany_name', companyObj);
    /*失去焦点时去掉职位名称联想功能的下拉框*/
    $('#job_name').on('blur', function(){
        setTimeout(function(){$("#jobNameLenovo").slideUp(300);}, 200);
    });
    /*职位名称校验*/
    var jobNameObj = {
        $input: $('#job_name'),
        $em: $('#job_name_msg'),
        minLength: 2,
        maxLength: 255/*30*/,/*由于在选择的职位不是其他时会把值填到职位名称，长度超过30*/
        focusStyle: true,
        haveDelay: true,
        emptyTip: standRes_tips.jobName_enter,
        minLengthTip: standRes_tips.jobName_minLength2,
        maxLengthTip: standRes_tips.jobName_maxLength30,
        methods: [isNOtEmpty, rangeLength, validateChars],
        charRegexps: [{
//            regexp: /^[A-Za-z\u4e00-\u9fa5|\-|\.]+$/,
            regexp: /^[\s\S ]+$/,
            tip: standRes_tips.jobName_spelChart
        },{
//            regexp: /^[A-Za-z\u4e00-\u9fa5][A-Za-z\u4e00-\u9fa5|\-|\.]+$/,
            regexp: /^[\s\S ]+$/,
            tip: standRes_tips.jobName_beginLetter
        }]
    }
    onFocusBlurEvent('#job_name', jobNameObj);
    /*职位名称联想显示*/
    var jobNamesArray = (language ==1 ? CONST_SUBJOBTYPE : CONST_SUBJOBTYPE_EN).split('@'), numbers = 10;
    //删除数组中第一个和最后一个空字符串元素
    jobNamesArray.splice(0,1);
    jobNamesArray.splice(-1,1);
    $('#job_name').on('keyup', function(event){
        /*当按了回车，上下方向键时如果有联想数据的列表，则在按上下方向键时对列表中li的class添加或删除current样式，否则return*/
        if(event.keyCode == 13 || event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 39 || event.keyCode == 40){
            /*如果有联想数据的列表则直接返回;*/
            if($("#jobNameLenovo li").length > 0){
                return;
            }
        }
        var jobNameInput = $(this), valStr = jobNameInput.val();
        if($.trim(valStr)){
            //对用来创建正则表达式的字符串中的特殊字符进行转义
            valStr = stringEscapeForRegExp(valStr);
            var regNameWhole = new RegExp('(\\d+)\\|(' + valStr + ')\\|(\\d+)', 'gi'),//匹配到完整的名称
                regNameBegin = new RegExp('(\\d+)\\|(' + valStr + '.+)\\|(\\d+)', 'gi'),//匹配以输入字符开头的名称
                regNameOther = new RegExp('(\\d+)\\|(.+' + valStr + '.*)\\|(\\d+)', 'gi'),//匹配包含输入字符但不在开头位置的名称
                WholeNames = [], beginNames = [], otherNames = [];
            for(var i = 0, lenJobs = jobNamesArray.length; i < lenJobs; i++){
                if(jobNamesArray[i]){
                    var jobStr = jobNamesArray[i], jobDetail;
                    if(regNameWhole.test(jobStr)){
                        jobDetail = jobStr.split('|');
                        WholeNames.push({selfId : jobDetail[2], name : jobDetail[1], broadId : jobDetail[0]});
                    }else if(regNameBegin.test(jobStr)){
                        jobDetail = jobStr.split('|');
                        beginNames.push({selfId : jobDetail[2], name : jobDetail[1], broadId : jobDetail[0]});
                    }else if(regNameOther.test(jobStr)){
                        jobDetail = jobStr.split('|');
                        otherNames.push({selfId : jobDetail[2], name : jobDetail[1], broadId : jobDetail[0]});
                    }
                }
            }
            var jobsDetail = WholeNames.concat(beginNames).concat(otherNames), jobListStr = '', lengthJobD= jobsDetail.length;
            if(lengthJobD > 0){
                var listLength = lengthJobD > numbers ? numbers : lengthJobD;
                for(var j = 0; j < listLength; j++){
                    var oneJob = jobsDetail[j];
                    jobListStr += '<li selfid="' + oneJob.selfId + '" broadid="' + oneJob.broadId + '">' + oneJob.name + '</li>';
                }
                var jobNamesUl = $("#jobNameLenovo");
                jobNamesUl.html(jobListStr);
                $("#jobNameLenovo li").on("click",function(){
                    var oneJobLi=$(this);
                    jobNameInput.val(oneJobLi.text()).siblings('#SchJobType').val(oneJobLi.attr('selfid')).siblings('#subJobType').val(oneJobLi.attr('broadid'));
                }).on("mouseover",function(){
                    $(this).addClass('current').siblings().removeClass('current');
                }).first().addClass('current');
                jobNamesUl.slideDown(300);
            }else{
                $("#jobNameLenovo").html('').hide();
            }
        }else{
            $('#jobNameLenovo').html('').hide();
        }
    });
    /*职位名称下拉列表的上、下、回车键处理*/
    $('#job_name').on('keydown',function(event){
        var $inout = $(this), $ul_li = $("#jobNameLenovo li");
        /*调用键盘上、下、回车键的处理函数*/
        if($ul_li.parent().is(':visible')){
            keyDown_UpDownEnter(event, $ul_li, function(){setValueByEnterForJobNam($inout, $ul_li);});
        }else if(event.keyCode == 13 && $ul_li.length > 0){
            $ul_li.parent().show();
        }
    });
    /*职位月薪校验*/
    var positionSalary = {
        $input: $('#simOption01'),
        $em: $('#simOption01_msg'),
        focusStyle: false,
        haveDelay: true,
        emptyTip: standRes_tips.positionSalary_enter,
        methods: [isNOtEmpty]
    }
    onFocusBlurEvent('#simOption01', positionSalary);
    //-----------------------------------------------------start
    /*学校名称校验*/
    var schoolName = {
        $input: $('#school_name'),
        $em: $('#school_name_msg'),
        focusStyle: true,
        haveDelay: true,
        emptyTip: standRes_tips.schoolName_enter,
        methods: [isNOtEmpty]
    }
    onFocusBlurEvent('#school_name', schoolName);
    /*专业名称校验*/
    var professionName = {
        $input: $('#profession_name'),
        $em: $('#profession_name_msg'),
        focusStyle: true,
        haveDelay: true,
        emptyTip: standRes_tips.professionName_enter,
        methods: [isNOtEmpty]
    }
    onFocusBlurEvent('#profession_name', professionName);
    //-----------------------------------------------------end
    /*学历/学位校验*/
    var academicDegree = {
        $input: $('#simOption02'),
        $em: $('#simOption02_msg'),
        focusStyle: false,
        haveDelay: true,
        emptyTip: standRes_tips.academicDegree_select,
        methods: [isNOtEmpty]
    }
    onFocusBlurEvent('#simOption02', academicDegree);
    /*期望月薪（税前）*/
    var expectedSalary = {
        $input: $('#simOption03'),
        $em: $('#simOption03_msg'),
        focusStyle: false,
        haveDelay: true,
        emptyTip: standRes_tips.expectedSalary_select,
        methods: [isNOtEmpty]
    }
    onFocusBlurEvent('#simOption03', expectedSalary);
   /*工作描述校验*/
    $('#comment').on({
        'focus' : function(){
            if($.trim($(this).val()) == ''){
                $(this).removeClass('error_bor').addClass('focus_bor');
                $('#comment_msg').removeClass('right_tips error_tips').addClass('focus_tips').html(standRes_tips.workDesc_enter);
            }
        },
        'blur' : function(){
            var value = $(this).val();
            var tip = '';  //false
			
            if($.trim(value).length == 0 || value == standRes_tips.selfEvaluation_blank_in){
                tip = standRes_tips.workDesc_enter;
            }else if($.trim(value).length < 20){
                tip = standRes_tips.workDesc_minLength20;
            }else if($.trim(value).length > 3000){
                tip = standRes_tips.workDesc_maxLength3k;
                $('#work_desc_length font').html(0);
            }
			
            if(!!tip){		
                $(this).removeClass('focus_bor').addClass('error_bor');
                $('#comment_msg').removeClass('focus_tips right_tips').addClass('error_tips').html(tip);
            }else{		
                $(this).removeClass('focus_bor error_bor');
                $('#comment_msg').removeClass('focus_tips error_tips').addClass('right_tips').html(tip);
            }
        }
    });
    /*根据工作描输入的长度设置可输入字符长度的提示*/
    $('#comment').on('keyup change', function(){
        var flag = truncatedThenMore($(this), 3000, $('#comment_msg'), $('#work_desc_length font'), standRes_tips.workDesc_maxLength3k);
        /*IE浏览器实现maxlength效果，超过最大长度时截断输入的值*/
        if(!flag && $.browser.msie){
            $(this).val($(this).val().substring(0, 3000));
        }
    });
    $('#comment').on('keydown', function(){
        truncatedThenMore($(this), 3000, $('#comment_msg'), $('#work_desc_length font'), standRes_tips.workDesc_maxLength3k);
    });
    /*显示示例或清除示例*/
    $("#addExample").val(standRes_tips.workDesc_example);
    $('.btnExample span').on('click', function(){
        if($(".addExample").is(':hidden')){
            $(this).text(standRes_tips.workDesc_exaHideStr);
            $(this).parent("p").siblings(".addExample").slideDown(300); 
        }else{
            $(this).text(standRes_tips.workDesc_exaShowStr);
            $(this).parent("p").siblings(".addExample").slideUp(300); 
        }
        
    });
    /*提交表单时验证页面*/
    $('.submitBot').on('click',function(event){
        var flag = validateAll();
        if(!flag){
            var top = $('.error_bor:first').offset().top - $(window).height()/2;
            $('html,body').animate({
                scrollTop: top || 100/*100为了防止没获取到distanceTop时代码出错*/
            });
        }else{
            $('.main form').submit();
	    $('.submitBot').attr('disabled', true);
        }
    });
});
/*添加focus，blur校验事件*/
function onFocusBlurEvent(idString, eleObj){
    /*需要获得焦点的效果才添加focusHandler*/
    if(eleObj.focusStyle){
        $(idString).on('focus', {dataObj: eleObj}, focusHandler);
    }
    $(idString).on('blur', {dataObj: eleObj}, function(event){
        /*为了在下拉框有数据当点击下拉框的某一项时使下拉框click的赋值操作比input的blur的校验操作先执行完（如果blur比click先执行，blur时取不到值），使click的函数体延迟执行*/
        function eachValidateMethods (){
            var obj_element = event.data.dataObj;
            var methods = event.data.dataObj.methods;
            for(var i = 0; i < methods.length; i++){
                var result = methods[i](obj_element);
                if(result === true){
                    /*校验成功后设置样式*/
                    obj_element.$input.removeClass('focus_bor error_bor');
                    obj_element.$em.removeClass('focus_tips error_tips');

                    obj_element.$em.addClass('right_tips');
                    obj_element.$em.html('');
                }else{
                    /*校验失败后设置样式*/
                    obj_element.$input.removeClass('focus_bor');
                    obj_element.$em.removeClass('focus_tips right_tips');

                    obj_element.$input.addClass('error_bor');
                    obj_element.$em.addClass('error_tips');
                    obj_element.$em.html(result);
                    break;
                }
            }
        }
        /*是否需要延迟执行处理函数体*/
        if(event.data.dataObj.haveDelay){
            setTimeout(eachValidateMethods, 300);
        }else{
            eachValidateMethods();
        }
    });
}
/*设置获得焦点时的样式*/
function focusHandler(event){
    var $input = event.data.dataObj.$input;
    var value = $input.val();
    var $em = event.data.dataObj.$em;
    var focusTip = event.data.dataObj.emptyTip;
    if($.trim(value) == ''){
        $input.removeClass('error_bor');
        $em.removeClass('right_tips error_tips');

        $input.addClass('focus_bor');
        $em.addClass('focus_tips');
        $em.html(focusTip);
    }
}
/*校验不能为空*/
function isNOtEmpty(elementObj){
    var value = elementObj.$input.val();
    if(value == null || value == undefined){
        return '没有找到需要校验的元素';
    }
    if($.trim(value).length == 0){
        return elementObj.emptyTip;
    }
    return true;
}
/*校验最大最小长度*/
function rangeLength(elementObj){
    var value = elementObj.$input.val();
    if(value == null || value == undefined){
        return '没有找到需要校验的元素';
    }
    var minLen = elementObj.minLength;
    if(minLen){
        if(value.length < minLen){
            return elementObj.minLengthTip;
        }
    }
    var maxLen = elementObj.maxLength;
    if(maxLen){
        if(value.length > maxLen){
            return elementObj.maxLengthTip;
        }
    }
    return true;
}
/*使用正则校验特殊字符*/
function validateChars(elementObj){
    var value = elementObj.$input.val();
    if(value == null || value == undefined){
        return '没有找到需要校验的元素';
    }
    var regexpObjects = elementObj.charRegexps;
    if(regexpObjects){
        for(var i = 0; i < regexpObjects.length; i++){
            var obj = regexpObjects[i];
            if(!obj.regexp.test(value)){
                return obj.tip;
            }
        }
    }
    return true;
}
/*执行回调后的样式*/
function callBack_setStyle($input, $em, value, tipError){
    if(value.length == 0){
        /*值为空时的样式*/
        $input.removeClass('focus_bor');
        $em.removeClass('focus_tips right_tips');

        $input.addClass('error_bor');
        $em.addClass('error_tips');
        $em.html(tipError);
    }else{
        /*值不为空时的样式*/
        $input.removeClass('focus_bor error_bor');
        $em.removeClass('focus_tips error_tips');

        $em.addClass('right_tips');
        $em.html('');
    }
}
/*给控件的回调函数--行业类别*/
function callBack_industryPrevious(){
    callBack_setStyle($('#industry_type'), $('#industry_type_msg'), $('#industry_type').val(), standRes_tips.industryPrevious_enter);
}
/*给控件的回调函数--职位类别*/
/*function callBack_jobPrevious(submitCheck){
    var value = $('#job_type').val();
    callBack_setStyle($('#job_type'), $('#job_type_msg'), value, standRes_tips.jobPrevious_enter);
    if(!submitCheck){
        if(value != '' && value != '其他' && value != 'Others'){
            $('#job_name').val(value).blur();
        }else if(value == '其他' || value == 'Others'){
            $('#job_name').val('');
            $('#job_name').removeClass('error_bor');
            $('#job_name_msg').removeClass('right_tips error_tips');
            $('#job_name_msg').html('');
        }
    }
}*/
/*给控件的回调函数--期望从事行业*/
function callBack_industryDesired(){
    callBack_setStyle($('#button_industryF'), $('#desired_industry_msg'), $('#button_industryF').val(), standRes_tips.industryDesired_enter);
    /*在IE浏览器中设置选择的值超长后的*/
    if($.browser.msie && $('#button_industryF').val()){
        $('#button_industryF').val(cutStr($('#button_industryF').val(),50));
    }
}
/*给控件的回调函数--期望从事职业*/
function callBack_jobDesired(){
    callBack_setStyle($('#desired_Jobtype_show'), $('#desired_Jobtype_msg'), $('#desired_Jobtype_show').val(), standRes_tips.jobDesired_enter);
    /*在IE浏览器中设置选择的值超长后的*/
    if($.browser.msie && $('#desired_Jobtype_show').val()){
        $('#desired_Jobtype_show').val(cutStr($('#desired_Jobtype_show').val(),50));
    }
}
/*给控件的回调函数--期望工作地点*/
function callBack_placeDesired(){
    callBack_setStyle($('#desired_City'), $('#desired_City_msg'), $('#desired_City').val(), standRes_tips.placeesired_enter);
    /*在IE浏览器中设置选择的值超长后的*/
    if($.browser.msie && $('#desired_City').val()){
        $('#desired_City').val(cutStr($('#desired_City').val(),50));
    }
}
/*工作时间 就读时间--执行回调后的样式*/
function callBack_setStyle_date($inputArr, $em, tipError){
    /*延迟执行*/
    setTimeout(function(){
        var flag = true;
        for(var i = 0; i < $inputArr.length; i ++){
            if($inputArr[i].val().toLowerCase().replace(/年|year|月|month/g, '').length == 0 && !$inputArr[i].parent().is(':hidden')){
                /*值为空时的样式*/
                flag = false;
                $inputArr[i].removeClass('focus_bor');
                $em.removeClass('focus_tips right_tips');

                $inputArr[i].addClass('error_bor');
            }else{
                /*值不为空时的样式*/
                $inputArr[i].removeClass('focus_bor error_bor');
                $em.removeClass('focus_tips error_tips');
            }
            /*如果时间控件是隐藏的则去掉class的值error_bor*/
            if($inputArr[i].parent().is(':hidden')){
                $inputArr[i].removeClass('error_bor');
            }
        }
        var checkResult = flag ? checkEndStartDate($inputArr) : true;
        if(checkResult != true){
            flag = false;
            $em.removeClass('right_tips error_tips');
            tipError = checkResult;
        }
        if(flag){
            $em.addClass('right_tips');
            $em.html('');
        }else{
            $em.addClass('error_tips');
            $em.html(tipError);
        }
    }, 10);
}
/*在日期都选择后校验 结束时间必须大于开始时间*/
function checkEndStartDate($inputArray){
    var startY = '', startM = '', endY = '', endM = '';
    for(var i = 0; i < $inputArray.length; i ++){
        var value = $inputArray[i].val().toLowerCase().replace(/年|year|月|month/g, '');
        switch(i){
            case 0: {
                startY = value
                break;
            }
            case 1: {
                startM = value
                break;
            }
            case 2: {
                endY = value
                break;
            }
            case 3: {
                endM = value
                break;
            }
        }
    }
    var now = new Date(), nowY = now.getFullYear(), nowM = now.getMonth() + 1;
    /*选择结束的年为至今*/
    if(endY == '至今' || endY == 'Now'){
        endY = nowY;
        endM = nowM ;
    }
    var checkFlag = true;
    /*if(startY > endY || (startY <= endY && startM > endM)){
        checkFlag = 1;
    }
    if((startY > nowY || endY > nowY || (startY <= nowY && startM > nowM) ||(endY <= nowY && endM > nowM)) && checkFlag === true){
        checkFlag = 2;
    }*/
    var startDate = new Date(startY, startM - 1, 1), endDate = new Date(endY, endM - 1, 1), nowDate = new Date(nowY, nowM - 1, 1);
    if(startDate.getTime() > endDate.getTime()){//开始时间不能大于结束时间
        checkFlag = 1;
    }else if(startDate.getTime() > nowDate.getTime() || endDate.getTime() > nowDate.getTime()){//开始或结束时间不能大于当前时间
        checkFlag = 2;
    }
    if(checkFlag !== true){
        for(var i = 0; i < $inputArray.length; i++){
            !$inputArray[i].parent().is(':hidden') ? $inputArray[i].addClass('error_bor') : '';
        }
        if(checkFlag === 1){
            /*结束时间必须大于开始时间*/
            return standRes_tips.end_more_start;
        }else if(checkFlag == 2){
            /*不能大于当前时间*/
            return standRes_tips.not_greater_now;
        }
    }
    return true;
}
/*给控件的回调函数--工作时间 开始年份-开始月份 结束年份-结束月份*/
function callBack_work_date(){
    callBack_setStyle_date([$('#workstart_date_y'), $('#workstart_date_m'),
        $('#workend_date_y'), $('#workend_date_m')], $('#works_date_msg'), standRes_tips.workDate_select);
}
/*给控件的回调函数--就读时间 开始年份-开始月份 结束年份-结束月份*/
function callBack_study_date(){
    callBack_setStyle_date([$('#study_start_date_y'), $('#study_start_date_m'),
        $('#study_end_date_y'), $('#study_end_date_m')], $('#study_date_msg'), standRes_tips.studyDate_select);
}
/*给控件的回调函数--就读时间 开始年份做处理，根据学历/学位设置结束年*/
function callBack_study_dateY(){
    reckonTime();
    callBack_setStyle_date([$('#study_start_date_y'), $('#study_start_date_m'),
        $('#study_end_date_y'), $('#study_end_date_m')], $('#study_date_msg'), standRes_tips.studyDate_select);
}
/*给控件的回调函数回调函数--学校名称*/
function callBack_schoolName(){
    if($('#school_name').val().length == 0){
        callBack_setStyle($('#school_name'), $('#school_name_msg'), '', standRes_tips.schoolName_enter);
        return;
    }
    if($('#school_name').val().length < 4){
        callBack_setStyle($('#school_name'), $('#school_name_msg'), '', standRes_tips.schoolName_minLength4);
        return;
    }
    callBack_setStyle($('#school_name'), $('#school_name_msg'), 'have', '');
}
/*给控件的回调函数回调函数--专业名称*/
function callBack_professionName(){
    if($('#profession_name').val().length == 0){
        callBack_setStyle($('#profession_name'), $('#profession_name_msg'), '', standRes_tips.professionName_enter);
        return;
    }
    if($('#profession_name').val().length < 2){
        callBack_setStyle($('#profession_name'), $('#profession_name_msg'), '', standRes_tips.professionName_minLength2);
        return;
    }
    callBack_setStyle($('#profession_name'), $('#profession_name_msg'), 'have', '');
}
/*学历/学位是大专本科硕士博士时，在选择就读开始年时设置结束年*/
function reckonTime(){
    var interval = parseInt($("#simOption02").attr("datetime"));
    if(	interval != 0 ){
        var curTime = parseInt($("#study_start_date_y").val());
        var newTime = curTime + interval;
        var thisYear = (new Date()).getFullYear();
        if( newTime <= thisYear ){
            if( language == 1 ){
                $("#study_end_date_y").val(newTime+'年');
            }else{
                $("#study_end_date_y").val(newTime);
            };
        }else{
            $("#study_end_date_y").val("");
            $("#study_end_date_m").val("");
        };
    };
};
/*提交表单时校验页面所有项*/
function validateAll(){
    var radioChecked = $('#work_experience_have').attr('checked');
    var validateFlag = true;
    /*保存绑定了blur事件用于校验的元素的jq对象*/
    var arrValidateBlur = [];
    /*有工作/实习经验的值为 有 时才校验以下几项*/
    if(radioChecked){
        arrValidateBlur.push($('#cmpany_name'));/*公司名称*/
        arrValidateBlur.push($('#job_name'));/*职位名称*/
        arrValidateBlur.push($('#simOption01'));/*职位月薪（税前）*/
        arrValidateBlur.push($('#comment'));/*工作描述*/
    }
    arrValidateBlur.push($('#simOption02'));/*学历/学位*/
    arrValidateBlur.push($('#simOption03'));/*期望月薪（税前）*/

    /*遍历元素的blur事件*/
    $.each(arrValidateBlur, function(index, ele){
        ele.blur();
    });
    /*有工作/实习经验的值为 有 时才校验以下几项*/
    if(radioChecked){
        /*行业类别*/
        callBack_industryPrevious();
        /*职位类别*/
        //callBack_jobPrevious(true);
        /*工作时间*/
        callBack_work_date();
    }
    /*就读时间*/
    callBack_study_date();
    /*期望从事行业*/
    callBack_industryDesired();
    /*期望从事职业*/
    callBack_jobDesired();
    /*期望工作地点*/
    callBack_placeDesired();
    /*学校名称*/
    callBack_schoolName();
    /*专业名称*/
    callBack_professionName();
    /*期望工作性质*/
    $('.radio_change.property').click();
    /*是否统招*/
    $('#unified_y,#unified_n').parent().parent().click();

    if($('.error_bor').length > 0) validateFlag = false;
    return validateFlag;
}
//截取中英字符串 双字节字符长度为2 ASCLL字符长度为1
function cutStr(str,cutLen){
    var returnStr = '',             //返回的字符串
        reCN = /[^\x00-\xff]/,      //双字节字符
        strCNLen = str.replace(/[^\x00-\xff]/g,'**').length; 
        
    if(cutLen>=strCNLen){
        return str;
    }
    for(var i=0,len=0;len<cutLen;i++){
        returnStr += str.charAt(i);
        if(reCN.test(str.charAt(i))){
            len+=2;
        }else{
            len++;
        }
    }
    
    return returnStr +'...';
}
/*超过指定长度后设置提示并截取输入的值*/
function truncatedThenMore($ele_val, maxLength, $ele_msg, $ele_font, msg){
    var length_val = $ele_val.val().length;
    if (maxLength - length_val <= 0) {
        $ele_font.html(0);
        $ele_msg.removeClass('focus_tips right_tips').addClass('error_tips').html(msg);
        return false;
    } else {
        $ele_font.html(3000 - length_val);
        return true;
    }
};
//获取url的参数
function getUrlParam(name){
    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r!=null) return unescape(r[2]); return null;
}
//根据url的参数判断是否隐藏工作经验
var hacLi=$($(".mainForm2")[0]).find("li").first("li");
if(getUrlParam('express')==='0'){
    if(!hacLi.next("div").hasClass("tiggleDiv")){
        hacLi.siblings("li").css("display","none");
    }
}
//对用来创建正则表达式的字符串中的特殊字符转义
function stringEscapeForRegExp(str){
    if(str){
        if(/\.\|\/\^\$\?\+\*\[\]\(\)\-\~/.test(str)){
            //'.|/^$?+*[]()-~'.replace(/([\.\|\/\^\$\?\+\*\[\]\(\)\-\~])/gi,'\\\\$1')把.|/^$?+*[]()-~转义成\\.\\|\\/\\^\\$\\?\\+\\*\\[\\]\\(\\)\\-\\~ new生成的正则/\.\|\/\^\$\?\+\*\[\]\(\)\-\~/
            str = str.replace(/([\.\|\/\^\$\?\+\*\[\]\(\)\-\~])/gi,'\\\\$1');
        }
        if(/\\\'\"/.test(str)){
            //'\\\'\"'.replace(/([\\\'\"])/gi,'\\\\\\$1');把\'"转义成\\\\\\\'\\\"new生成的正则/\\\'\"/
            str = str.replace(/([\\\'\"])/gi,'\\\\\\$1');
        }
        return str;
    }else{
        return str;
    }
}